# -*- coding:utf-8 -*-
# @Time: 2020/9/7 17:08
# @Author: gupeng
# @File: limiter.py
# @Desc: 限制器--decrby测试
class Limiter:
    def __init__(self, client, key):
        self.client = client
        self.key = key

    def set_max_execute_times(self, max_execute_times):
        """
        设置最大可执行次数
        :param max_execute_times: 最大可执行次数
        :return: None
        """
        self.client.set(self.key, max_execute_times)

    def still_valid_to_execute(self):
        """
        检查是否可以继续执行被限制的操作
        :return: 是返回True，否则返回False
        """
        return self.client.decrby(self.key) >= 0

    def remaining_execute_times(self):
        """
        返回剩余可操作次数
        :return: 剩余可操作次数
        """
        return int(self.client.get(self.key))
